﻿using System;
using Service.Infrastructure.Result;

namespace Service.Infrastructure.Interface
{
    /// <summary>
    ///     信息涉及的用户管理
    ///     参数验证：严格的参数验证（正则、数位等）
    /// </summary>
    public interface IAccount
    {
        /// <summary>
        ///     信息登录用于身份确认
        ///     1.用户类型：根据不同接口实现来验证不同用户类型
        ///     2.
        /// </summary>
        /// <param name="userKey">用户唯一标识：帐号、手机、邮箱等，具有公示性</param>
        /// <param name="info">附加信息</param>
        /// <returns></returns>
        ServiceResult Login(String userKey, params Object[] info);

        ServiceResult Reg(String userKey, params Object[] info);

        /// <summary>
        ///     更新用户Session信息
        /// </summary>
        /// <param name="sessionKey">主键</param>
        /// <param name="info">其他信息</param>
        /// <returns>已经保存的数据</returns>
        ServiceResult KeepSession(String sessionKey,params Object[] info);

        /// <summary>
        ///     查询相关联的所有用户
        /// </summary>
        /// <returns></returns>
        ServiceResult QueryUsers();

    }
}
